Авторы |
Бождай Александр Сергеевич, доктор технических наук, профессор, кафедра систем автоматизированного проектирования, Пензенский государственный университет (Россия, г. Пенза, Красная, 40), bam@pnzgu.ru
Евсеева Юлия Игоревна, кандидат технических наук, доцент, кафедра систем автоматизированного проектирования, Пензенский государственный университет (Россия, г. Пенза, Красная, 40), bam@pnzgu.ru
Гудков Алексей Анатольевич, кандидат технических наук, доцент, кафедра систем автоматизированного проектирования, Пензенский государственный университет (Россия, г. Пенза, Красная, 40), bam@pnzgu.ru
|
Аннотация |
Актуальность и цели. Проблема создания универсальной технологии разработки самоадаптивного программного обеспечения (ПО) становится все более актуальной в последние годы, что обусловлено широтой применения сложных программных систем и высокими требованиями к их производительности и надежности. Целью статьи является описание принципов и перспектив разработки адаптивного ПО с использованием технологии трассировки вычислительного процесса. В качестве практического примера показана возможность использования популярного программно-аппаратного решения для такой трассировки – Intel Processor Trace, представляющего собой инструментарий для записи трасс выполнения программного кода с минимально необходимым для этого количеством информации. Анализируя накопленную совокупность трасс, можно оценить статистику исполнения различных фрагментов программного кода и сделать выводы об их сравнительной эффективности в различных условиях. Полученные данные могут быть положены в основу алгоритмов самооптимизации программных продуктов.
Материалы и методы. В качестве технологического решения для трассировки вычислительного процесса используется программно-аппаратное решение Intel Processor Trace. Предлагаемые методы формализации используют математический аппарат динамических графов.
Результаты. Предложена концепция использования трассировки вычислительного процесса для создания программных библиотек и инструментариев, нацеленных на разработку самоадаптивного ПО. Рассмотрены два основных пути практической реализации концепции: создание алгоритмов разработки самоадаптивных программных систем, функционирующих на аппаратной платформе Intel; разработка специализированной программной библиотеки для языка высокого уровня, позволяющей собирать и обрабатывать трассы вычислительного процесса. Предложен способ формального представления программных трасс на основе математического аппарата теории графов.
Выводы. Трассировка вычислительного процесса является программноаппаратной технологией, позволяющей отслеживать характерные особенности выполнения программного кода и описывать их минимально необходимым количеством информации. Анализируя собственные вычислительные трассы, программная система получает возможность низкоуровневого самоанализа с возможностью дальнейших действий, направленных на самоадаптацию к изменяющимся условиям функционирования.
|
Ключевые слова
|
программная самоадаптация, адаптивные программные системы, трассировка вычислительного процесса, теория графов, динамический граф, Intel Processor Trace.
|
Список литературы |
1. Chang, V. A Cybernetics Social Cloud / V. Chang. – N. Y. : Electronics & Computer Science, 2015.
2. Ding, Z. A software cybernetics approach to self-tuning performance of on-line transaction processing systems / Z. Ding, Z. Wei, H. Chen // J. Syst. Software. – Amsterdam : Elsevier, 2016. – P. 13–18.
3. Mayer, P. The autonomic cloud: a vision of voluntary, peer-2-peer cloud computing / P. Mayer, A. Klarl, R. Hennicker // 7th IEEE International Conference on Self- Adaptation and Self-Organizing Systems Workshops (SASOW). – Washington : IEEE Computer Society, 2013. – P. 89–94.
4. Бершадский, А. М. Исследование и разработка методов динамического ана-
лиза кода для создания самоадаптивного программного обеспечения / А. М. Бершадский, А. С. Бождай, Ю. И. Евсеева, А. А. Гудков // Моделирование, оптимизация и информационные технологии. – 2018. – № 4. – С. 108–120.
5. Processor Tracing // Intel Developer Zone. – URL: https://software.intel.com/content/ www/us/en/develop/blogs/processor-tracing.html (дата обращения: 23.08.2020).
6. Intel 64 and IA-32 ArchitecturesSoftware Developer’s Manual // Intel Developer Zone. – URL: https://software.intel.com/sites/default /files/managed/39/c5/325462-sdm-vol-1- 2abcd-3abcd.pdf (дата обращения: 23.08.2020).
7. Last Branch Record Trace // Intel Developer Zoneэ. – URL: https://software.intel. com/content/www/us/en/develop/documentation/system-debug-legacy-userguide/ top/common-debugger-tasks/execution-trace/last-branch-record-trace.html (дата обращения: 23.08.2020).
8. Enhance performance analysis with Intel Processor Trace // Performance explained easy. – URL: https://easyperf.net/blog/2019/08/23/Intel-Processor-Trace (дата обраще- ния: 23.08.2020).
9. Jiang, C. A Survey of Frequent Subgraph Mining Algorithms / C. Jiang, F. Coenen, M. Zito // The Knowledge Engineering Review. – 2004. – № 1. – P. 1–31.
10. Elseidy, M. GraMi: frequent subgraph and pattern mining in a single large graph / M. Elseidy, E. Abdelhamid, S. Skiadopoulos, P. Kalnis // Proceedings of the VLDB Endowment. – N.Y. : ACM, 2014. – P. 445–450.
11. Karsten, M. Pattern Mining in Frequent Dynamic Subgraphs / M. Karsten, H. Kriegel, P. Wackersreuther // In Sixth International Conference on Data Mining (ICDM'06). – Washington : IEEE Computer Society, 2006. – P. 18–22.
12. Бождай, А. С. Метод рефлексивной самоадаптации программных систем / А. С. Бождай, Ю. И. Евсеева // Известия высших учебных заведений. Поволжский регион. Технические науки. – 2018. – № 2 (46). – С. 74–86.
|